Systems and methods for interacting with a client device

ABSTRACT

Novel systems and methods for interacting with a client device are described. The network-based systems and methods of the present teachings are capable of seeking feedback regarding individual performance and seeking information relating to work deliverable, such as assigning individuals tasks, conveying a “to-do list,” sharing an agenda between two or more users and managing goals of teams and/or individuals.

RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent ApplicationNo. 62/484,420 which was filed on Apr. 12, 2017 and is acontinuation-in-part of U.S. application Ser. No. 15/761,122 filed onMar. 19, 2018 which is a National Stage Application of PCT/US16/56691filed on Oct. 12, 2016, which in turns claims priority to U.S.Provisional Patent Application No. 62/240,509 filed on Oct. 12, 2015 andeach of these prior applications are incorporated by reference hereinfor all purposes.

FIELD

The present teachings generally relate to novel network-based systemsand methods for interacting with a client device. More particularly, thepresent teachings relate to Internet-based systems and methodsfor—communication between a feedback plugin, which is installed on aclient device and that is communicatively coupled to a feedback serverto allow for such functions as seeking feedback regarding individualperformance, assigning individuals tasks, conveying a “to-do list,”sharing an agenda between two or more users and managing goals of teamsand/or individuals.

BACKGROUND

Employee feedback is not only an integral part of personal andprofessional growth of an employee, but it also allows an employer toset goals and expectations for its employees, ultimately contributing toproduce a successful workforce that is both productive and of highmorale. Regardless of whether the feedback is intended for an employee,an employer or a third party, it is most effective when it is specificand timely. For a feedback to be specific it is effective when itrelates to a particular job or task and for a feedback to be timely, itis effective when the job is complete or certain job milestones arecomplete.

Thus, there is a need to seek and obtain feedback that is both timelyand specific.

SUMMARY

To this end, the present invention offers no systems and methods ofinteracting with a client device that allow for, among other things,obtaining timely and specific feedback. In exemplar preferredembodiments, the present arrangements and teachings offer Internet-basedsystems and methods for—communication between a feedback plugin, whichis installed on a client device and that is communicatively coupled to afeedback server. These systems and methods allow seeking timely andspecific information relating to work deliverables, such as providinginformation to facilitate assignment of individuals tasks, conveying a“to-do list,” sharing information to facilitate setting an agendabetween two or more users and managing goals of teams and/orindividuals.

In one aspect, the present teachings provide methods of seekingfeedback. One exemplar feedback seeking method includes: (1) receiving,at a feedback server from a feedback plugin, information relating topotential mention of one or more individuals to gain insight intowhether identity of one or more of the individuals is present in anelectronic content; (2) identifying one or more relevant individuals, ifinformation relating to identity of one or more of the individuals ispresent in the information relating to potential mention of one or moreof the individuals obtained from the receiving step of (1), and if oneor more of the individuals are those that the feedback server determinesthe user to be qualified to provide feedback for; (3) collecting, usingthe feedback server, additional information about one or more of therelevant individuals to generate a user profile for each of one or moreof the relevant individuals; (4) transmitting, from the feedback serverto the feedback plugin, the user profile, which is more informativeabout one or more of the relevant individuals than the informationrelating to potential mention of one or more of the individuals that wasreceived at the feedback server; and (5) displaying and/or causing todisplay, using the feedback server and/or the feedback plugin and on oradjacent to the electronic content on the client device, a userinterface and/or a panel for obtaining feedback on at least some of therelevant individuals.

In the exemplar method described above, the user interface and/or thepanel may be constructed using the user profile, and during the step ofdisplaying and/or the causing to display, an electronic content providermay provide the specified electronic content. Further, in thisconfiguration, the feedback server and/or the feedback plugin providethe user interface and/or the panel, and the feedback server isdifferent from the electronic content provider.

Moreover, the information relating to potential mention of one or moreof the individuals does not necessarily convey knowledge about one ormore of the individuals. At the time when the electronic content is orwas active on the client device, the feedback plugin is communicativelycoupled to the client device (which is associated with a user). In thisarrangement, the feedback server is communicatively coupled to thefeedback plugin through a network.

In another aspect, the present teachings provide another type offeedback seeking method. One example of this type of method includes:(1) receiving a signal from a client device associated with a user thatan electronic mail is active on the client device, and the electronicmail identifies a sender and one or more recipients of the electronicmail; (2) conveying information regarding the sender and one or more ofthe recipients to a feedback server; (3) identifying, using the feedbackserver and based on the information regarding the sender and one or moreof the recipients, one or more relevant individuals that the user isqualified to provide feedback for and one or more of the relevantindividuals include at least one of the sender and/or one or more of therecipients; and (4) displaying and/or causing to display, on the clientdevice, a user interface or a panel for seeking feedback from the userregarding individual performance of the relevant individuals.

In yet another aspect, the present teachings provide another type offeedback seeking method. One example of this type of method includes:(1) receiving a notification at a feedback plugin that a specifiedelectronic content is active on a client device (which is associatedwith a user), and the feedback plugin is communicatively coupled to theclient device; (2) retrieving, using the feedback plugin and in responseto the receiving of the notification, at least a portion of thespecified electronic content from the client device into the feedbackplugin; (3) analyzing, using the feedback plugin, at least the portionof the specified electronic content to identify information relating topotential mention of one or more individuals in the specified electroniccontent; (4) conveying the information relating to potential mention ofone or more of the individuals from the feedback plugin to a feedbackserver to gain insight into whether the information relating topotential mention of one or more of the individuals in the specifiedcontent is related to one or more relevant individuals. In this method,one or more relevant individuals are those that the user is qualified toprovide feedback for; (5) accepting from the feedback server the userprofile for one or more of the relevant individuals; and (6) displayingand/or causing to display, using the feedback server and/or the feedbackplugin and on or adjacent to the electronic content on the clientdevice, a user interface and/or a panel for obtaining feedback on atleast some of the relevant individuals. In this embodiment of thepresent teachings, the user interface and/or the panel is constructedusing the user profile. Furthermore, in the displaying and/or thecausing to display step, the web server provides the specifiedelectronic content and the feedback server and/or the feedback pluginprovides the user interface and/or the panel. In this configuration, thefeedback server is different from the web server.

In yet another aspect, the present teachings provide another typefeedback seeking method. One example of this type of method includes:(1) receiving a notification at a feedback plugin that a specifiedelectronic content is active on a client device (which is associatedwith a user) and the feedback plugin is communicatively coupled to theclient device; (2) retrieving, using the feedback plugin and in responseto the receiving of the notification, at least a portion of thespecified electronic content from the client device into the feedbackplugin; (3) analyzing, using the feedback plugin, at least the portionof the specified electronic content to identify information relating topotential mention of one or more individuals in the specified electroniccontent; (4) conveying the information relating to potential mention ofone or more of the individuals from the feedback plugin to a feedbackserver to gain insight into the information relating to potentialmention of one or more of the individuals in the specified content; (5)identifying, using the feedback server, one or more relevant individualsbased on the information relating to potential mention of one or more ofthe individuals identified in the analyzing step in (3); (6) collecting,using the feedback server, additional information about one or more ofthe relevant individuals to generate a user profile for each of one ormore of the relevant individuals; (7) transmitting, from the feedbackserver to the feedback plugin, the user profile relating to at leastsome of the relevant individuals that the user is qualified to providefeedback for, and the user profile provided by the feedback server ismore informative about one or more of the relevant individuals than theinformation relating to potential mention of one or more of theindividuals; and (8) displaying and/or causing to display, using thefeedback server and/or the feedback plugin and on or adjacent to theelectronic content on the client device, a user interface and/or a panelfor obtaining feedback on at least some of the relevant individuals. Theuser interface and/or the panel may be constructed using the userprofile. In the displaying and/or the causing to display step of (8),the web server provides the specified electronic content and thefeedback server and/or the feedback plugin provides the user interfaceand/or the panel. In this configuration, the feedback server isdifferent from the web server.

In yet another aspect, the present arrangements provide systems forseeking feedback. The system includes: (1) a feedback server containinginstructions for providing feedback and/or work deliverables to theclient device; (2) a network serving as a communication interfacebetween the feedback server and a feedback plugin; and (3) the feedbackplugin is located on the client device and receives information and/orsignals from a mail client and/or a website.

In yet another aspect, the present teachings provide another method ofseeking feedback. One such exemplar method includes: (i) subscribing,using a feedback plugin, to be notified when a web browser visits one ormore predefined web pages; (ii) receiving a notification at a feedbackplugin that the web browser has visited or is visiting one or more thepredefined web pages on a client device; (iii) transforming the feedbackplugin from a non-active state to an active state; (iv) retrieving,using the feedback plugin and in response to the step of receiving ofthe notification in (i), at least a portion of one or more thepredefined web pages from the client device into the feedback plugin;(v) analyzing, using the feedback plugin, at least the portion of one ormore the predefined web pages to identify information relating topotential mention of one or more individuals in one or more thepredefined web pages; (vi) conveying the information relating topotential mention of one or more of the individuals, from the feedbackplugin to a feedback server, to gain insight into whether theinformation relating to potential mention of one or more of theindividuals in one or more of the predefined web pages is related to oneor more relevant individuals, wherein one or more relevant individualsare those that the user is qualified to provide feedback for; (vii)accepting from the feedback server a user profile for one or more of therelevant individuals; and (viii) displaying and/or causing to display,using the feedback server and/or the feedback plugin and on or adjacentto one or more of the predefined web pages on the client device, theuser interface and/or a panel for obtaining feedback on at least some ofthe relevant individuals. The feedback plugin is communicatively coupledto or installed on the client device, which is associated with a user.

The user interface and/or the panel is constructed using the userprofile. In the above-mentioned step of displaying and/or causing todisplay, the web server provides one or more of the predefined web pagesand the feedback server and/or the feedback plugin provides the userinterface and/or the panel that is displayed on the client device.Further, the feedback server is different from the web server.

In one embodiment, the present method of seeking feedback furtherincludes receiving, at the feedback plugin, a grant of subscription fromthe web browser. The above-mentioned step of subscribing includesparsing a manifested file on the feedback plugin. The manifested fileincludes a list of one or more predefined web pages, and theabove-mentioned step of receiving includes receiving notification whenthe web browser visits one or more of the predefined web pages listed inthe manifested file.

Further, this receiving step may include: (i) monitoring, using thefeedback plugin, for receipt of a document object model (“DOM”) mutationevent notification from the client device when structure of a DOMassociated with the predefined website undergoes a change; and (ii)receiving, at the feedback plugin, the DOM mutation event notificationfrom the client device.

The monitoring step may include monitoring DOM mutation events toidentify a condition when the DOM mutation event matches a predefinedattribute selector (e.g., a cascading style selector). Theabove-mentioned transforming step may include transforming the feedbackplugin from the inactive state to an active state when the DOM mutationevent matches the predefined attribute selector. The DOM mutation eventmay be generated at beginning, end or reiteration of an animation event.

In one embodiment of the present teachings, the step of displayingand/or the step of causing to display includes determining, using thefeedback plugin, whether enough space is present, at the client device,to replace a sidebar element in an email interface or place a userinterface in or adjacent to one or more of the predefined web pages. Inanother implementation of this step, a sidebar element in an emailinterface is replaced with an entire boundary that encompasseselectronic content of interest, at least some of which is obtained fromthe feedback server. A yet another aspect of this step includesreplacing a sidebar element in an email interface with one or more userprofiles of individuals deemed relevant in light of recently uploadedemail message or electronic content at the feedback plugin. In yetanother aspect of this step, the user interface is displayed and/orcaused to be displayed as a webpage in an iframe, which includes theuser profile.

The above-mentioned displaying and/or causing to display step mayinclude manipulating a sidebar element in an email interface to displaya recent user profile. The recent user profile is arrived at byretrieving, using the feedback plugin, at least a portion of one or moreof recent predefined web pages. The recent predefined web pages areretrieved later in time than the predefined web pages (which wereretrieved initially). In this embodiment, the recent predefined webpages may include email messages or electronic content. The step ofmanipulating the sidebar element in the email interface, preferably,includes manipulating a rectangle that includes a web page or a frame,which includes content of email messages.

In yet another aspect, the present teachings provide yet another methodof seeking feedback. This method includes: (i) registering an end pointof a feedback plugin in a connection between the feedback plugin and afeedback server; (ii) receiving, from the feedback plugin through theend point and at the feedback server, information relating to potentialmention of one or more individuals to gain insight into whether identityof one or more of the individuals is present in an electronic content;(iii) identifying one or more relevant individuals, if informationrelating to identity of one or more of the individuals is present in theinformation relating to potential mention of one or more of theindividuals obtained from the receiving and if one or more of theindividuals are those that the feedback server determines the user to bequalified to provide feedback for; (iv) collecting, using the feedbackserver, additional information about one or more of the relevantindividuals to generate a user profile for each of one or more of therelevant individuals; (v) transmitting, from the feedback server to thefeedback plugin, the user profile, wherein the user profile provided bythe feedback server is more informative about one or more of therelevant individuals than the information relating to potential mentionof one or more of the individuals that was received at the feedbackserver; and (vi) displaying and/or causing to display, using thefeedback server and/or the feedback plugin and on or adjacent to theelectronic content on the client device, a user interface and/or a panelfor obtaining feedback on at least some of the relevant individuals. Theuser interface and/or the panel is constructed using the user profile,and during the above-mentioned step of displaying and/or causing todisplay, an electronic content provider provides the specifiedelectronic content and the feedback server and/or the feedback pluginprovide the user interface and/or the panel. In this scenario, thefeedback server is different from the electronic content provider.

The information relating to potential mention of one or more of theindividuals does not necessarily convey knowledge about one or more ofthe individuals. The electronic content is or was active on a clientdevice.

The information relating to potential mention of one or more of theindividuals is, preferably, in form of a web request and the feedbackserver is configured to accept this web request from the feedbackplugin.

In the above-mentioned identifying step, one or more of the relevantindividuals may include parsing or breaking down, using the feedbackserver, potential mentions of one or more of the individuals to preparea URL of an iframe. In this embodiment of the present teachings, theabove-mentioned transmitting step includes transmitting the URL of theiframe from the feedback server to the feedback plugin, and theabove-mentioned displaying and/or causing to display step, using thefeedback server and/or the feedback plugin, includes displaying and/orcausing to display the iframe on or adjacent to the electronic contenton the client device.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A shows a network-based platform, according to one embodiment ofthe present arrangements, and that couples multiple computing machines,e.g., a server and multiple client devices (e.g., a desktop computer anda mobile device) to each other for displaying a user interface and/or apanel for seeking feedback on certain individuals.

FIG. 1B shows a blocks diagram of internal components of one or more ofthe server and/or the client devices, according to one embodiment of thepresent arrangements and that are shown in FIG. 1A.

FIG. 2 shows a block diagram of a feedback seeking system, according toone embodiment of the present arrangements, for seeking feedback using aclient device that has installed thereon a web browser thatcommunicatively couples to a feedback plugin, which through a networkconnects to a feedback server such that the feedback plugin conveyssignals and/or information to and from the web browser to the feedbackserver.

FIG. 3 shows a block diagram of a system, according to anotherembodiment of the present arrangements, for seeking feedback using aclient device that has installed thereon an application-based mailclient that communicatively couples to a feedback plugin, which througha network connects to a feedback server such that the feedback pluginconveys signals and/or information to and from the application-basedmail client to the feedback server.

FIG. 4 shows a process flow diagram for a method, according to oneembodiment of the present teachings, for seeking feedback forindividuals mentioned in an electronic mail.

FIG. 5 shows a process flow diagram for a method, according to oneembodiment of the present teachings, for seeking feedback forindividuals that are mentioned in a specified electronic content (e.g.,a predefined website, a predefined web mail or a predefined applicationwindow).

FIG. 6 shows a process flow diagram for a method, according to yetanother embodiment of the present teachings, for seeking feedback forindividuals that are mentioned in a specified electronic content.

FIG. 7A shows a screen shot, according to one embodiment of the presentteachings and that shows an exemplar user interface and/or a panel thatis disposed adjacent to an electronic mail that is displayed on theclient device.

FIG. 7B shows another screen shot, according to another embodiment ofthe present teachings and that shows the exemplar user interface and/orthe panel of FIG. 7A in a collapsed form so that more viewable realestate is available to the user for viewing the electronic content(e.g., website, web mail or application window).

FIG. 8 shows a table, according to one embodiment of the presentteachings and that shows exemplar code that implements certain salientfunctions of the feedback plugin.

FIG. 9 shows a table, according to one embodiment of the presentteachings and that shows exemplar code that implements certain salientfunctions of the feedback server.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In the following description, numerous specific details are set forth inorder to provide a thorough understanding of the present invention. Itwill be apparent, however, to one skilled in the art that the presentinvention may be practiced without limitation to some or all of thesespecific details. By way of example, although various examples andembodiments describe systems and methods for seeking feedback forindividual performance, the same systems and methods of the presentteaching equally apply to effectively assigning individual tasks,conveying a “to-do list,” sharing an agenda between two or more usersand managing individual and/or team goals. In other instances,well-known process steps have not been described in detail in order tonot unnecessarily obscure the invention.

Embodiments presented herein describe systems and methods for, amongother things, effecting interactions with a client device, over acomputer network. In preferred implementations of these embodiments, auser who is performing a task, such as reviewing a web page or anapplication window, is automatically served with a user interface and/ora panel that seeks feedback regarding performance of certain individualsthat are mentioned on the web page or the application window. Thesystems and methods of the present teachings may be incorporated in aclient device that accesses through a network (e.g., the Internet) afeedback server, which facilitates displaying the feedback userinterface and/or panel on the client device. As a result, the novelsystems and methods of the present teachings automatically seek feedbackthat is both—timely and specific. The feedback is timely because itoccurs real-time when a particular job is underway. The feedback is alsospecific as the user interface and/or panel allows the user to answerspecific questions that are relevant to the job when the job isunderway.

FIG. 1A is an illustrative schematic of one embodiment of the presentarrangements that includes a feedback seeking platform 100 includingmultiple computing devices, shown as three exemplar machines 102, 104and 106. In the embodiment shown in FIG. 1A, computing device 102 is afeedback server and computing devices 104 and 106 are referred to as“client devices.” A network 108 (e.g., the Internet) couples feedbackserver 102 and client devices 104 and/or 106, to enable communicationamongst them. As will be appreciated by those skilled in the art, anycomputing devices (e.g., server, desktop computer, laptop computer,tablet, or mobile device) may be used as one of feedback server 102 andclient devices 104 and 106 and configured to perform some or all of thefunctions contemplated in the present teachings. Furthermore, system 100may include multiple computing machines to serve the functions of eachof feedback server 102 and each of client devices 104 and/or 106.

Representative client devices 104 and 106 (hereinafter sometimes alsoreferred to as “user devices”) include a smart phone, a portable digitalassistant, a tablet or a stationary computing appliance. In certainembodiments of the present arrangements, each or any one of feedbackserver 102 and client devices 104 and/or 106 are a wireless machine,which is in wireless communication with network 108. In this embodimentof the present arrangements, feedback server 102 is involved duringinteraction and data flows to and from any of client devices 104 and/or106. In general, feedback server 102 may include one or more computersand data storage devices, and may produce programming instructions,files, or data (e.g., user profile data for one or more relevantindividuals) that may be transmitted over network 108 to client devices104 and/or 106, which may be used by a user to provide performancefeedback for one or more of relevant individuals, assign tasks to theseindividuals, convey a “to-do list” relevant to these individuals, sharean agenda between two or more individuals and manage individual and/orteam goals.

In certain embodiments of the present arrangements, as noted above,feedback seeking platform 100 includes several components, including butnot limited to feedback server 102 and a plurality of client devices 104and/or 106, which are programmed to cooperatively achieve one or more ofthe following functions: (1) receiving a notification that a specifiedelectronic content is active on a client device (e.g., 104 or 106),which is associated with a user; (2) retrieving, at a discrete locationinside the client device, at least a portion of the specified electroniccontent for analysis; (3) analyzing, at the discrete location inside theclient device, at least the portion of the specified electronic contentto identify information relating to potential mention of one or moreindividuals in the specified electronic content; (4) receiving, at thefeedback server 102, information relating to potential mention of one ormore individuals in the specified electronic content that is or wasactive on a client device; (5) identifying, using feedback server 102,one or more relevant individuals, if information relating to identity ofone or more of the individuals is present in the information relating topotential mention of one or more of the individuals obtained from theabove-mentioned receiving step in (1), and if one or more of theindividuals are those that feedback server 102 determines a user to bequalified to provide feedback for; (6) collecting additional informationabout one or more of the relevant individuals to generate a user profileabout such relevant individuals; (7) transmitting the user profile fromfeedback server 102 to client device (e.g., 104 or 106); and (8)displaying and/or causing to display, on the client device, a userinterface and/or a panel (e.g., constructed using the user profile) forseeking feedback on at least some of the relevant individuals, assigningtasks to relevant individuals, conveying a “to-do list” to relevantindividuals, sharing an agenda between the user and one or more relevantindividuals and managing goals for one or more of the relevantindividuals and/or teams.

In one embodiment of the present arrangements, client devices 104 and/or106 are programmed to allow users to communicate with one another usinga messaging system. To this end, feedback server 102 may serve as anintermediary in the communication, and stores information regardingfeedback or task messages exchanged. A user using one or more ofcomputing devices 104 and 106, in certain embodiments of the presentarrangements, is an individual or a representative of an individual(such as a manager or supervisor in a company).

As shown in FIG. 1B, in accordance with one embodiment of the presentarrangements, each of server 102 and client devices 104 and 106 includetheir own network interface 110, a memory 112, a processor 114, adisplay interface 116, and an input device 118. The present teachingsrecognize that the network interface 110, memory 112, and processor 114of each of server 102 and client devices 104 and 106 are configured suchthat a program stored in memory 112 may be executed by processor 114 toaccept different types of input (e.g., notification and/or signals fromwebsites or applications) and/or provide output (e.g., a user interfaceand/or a panel) through network interface 110 over network 108 toanother server/client device on system 100 of FIG. 1A.

Network interface 110 of each of server 102 and client devices 104 and106 is used to communicate with another device on system 100 over awired or wireless network, which may be, for example and withoutlimitation, a cellular telephone network, a WiFi network or a WiMaxnetwork or a BlueTooth network, and then to other telephones through apublic switched telephone network (PSTN) or to a satellite, or over theInternet. Memory 112 of devices 102, 104 and/or 106 includes programmingrequired to operate each or any one of server 102 and client devices 104and/or 106, such as an operating system or virtual machine instructions,and may include portions that store information or programminginstructions obtained over network 108, or that are input by the user.In one embodiment of the present arrangements, display interface 116 andinput device 118 of client device 106 are physically combined as a touchscreen 116/118, providing the functions of display and input.

FIG. 2 shows details inside a feedback-seeking platform 200, accordingto one embodiment of the present arrangements. Feedback seeking platform200 includes a feedback server 202 connecting through a network 208(e.g., the Internet) to client devices 204/206, each of which aresubstantially similar to their counterparts, i.e., feedback server 102,network 108, and client devices 104/106 shown in FIG. 1A. In FIG. 2,each client device (e.g., each of 204 and 206) has installed thereon aweb browser, which is communicatively coupled to a web server (not shownto simplify illustration). Further, the web browser, installed on eachclient device, is communicatively coupled to a feedback plugin. Forexample, a web browser 210, which is installed on client device 204, iscommunicatively coupled to a feedback plugin 214, and a web browser 222,which is installed on client device 206, is communicatively coupled tofeedback plugin 226.

Each of feedback plugins 214 and 226, are bi-directionally coupledthrough a first bi-directional coupling 216A/216B, respectively, tonetwork 208, and then from network 208 through a second bi-directionalcoupling 220 to feedback server 202. As a result of this arrangement,feedback plugins 214 and 226 are configured to transmit information toand from feedback server 202.

The web server hosts on client devices 204 and 206 a website 212/224,respectively. In one preferred arrangement, each website 212/224 iscommunicatively coupled to provide information to one of feedbackplugins 214/226. As will be explained later, this arrangement of website212/224, feedback plugins 214/226 and feedback server 202 allowsfeedback seeking platform 200 to automatically obtain feedback from auser, in real-time, i.e., as the user is viewing a website (e.g.,Salesforce.com, Gmail, Jiva, Zendesk or Outlook.com). If the questions,in a user interface and/or panel designed to elicit feedback areeffective, then the feedback obtained is both timely and of requisitespecificity.

Feedback seeking platform 200 is not limited to only seeking feedback,but also extends to assigning tasks to relevant individuals, conveying a“to-do list” to relevant individuals, sharing an agenda between the userand one or more relevant individuals and managing goals of the userand/or one or more of the relevant individuals and/or teams. As aresult, feedback seeking platform 200 may be configured to operate as atask assigning platform, a list conveying platform, an agenda sharingplatform or a goal management platform that do not necessarily providefeedback. FIG. 3 described below relates to applications hosted on theclient device, and is similarly not limited to providing feedback.

FIG. 3 illustrates that a timely feedback of requisite specificity isalso obtained by the present arrangements when the client device hostsan application such as an electronic mail program (e.g., Outlook in theApple OS X Operating System). As shown in this figure, a feedbackseeking platform 300, according to another embodiment of the presentarrangements, is arranged to include a feedback server 302, clientdevices 304/306, a network 308, feedback plugins 314/326, a firstbi-directional coupling 316A/316B, a second bi-directional coupling 320in a manner that is substantially similar to their counterparts,feedback server 202, client devices 204/206, a network 208, feedbackplugins 214/226, a first bi-directional coupling 216A/216B, a secondbi-directional coupling 220 of FIG. 2. As a result of this arrangement,feedback plugins 314/326 of FIG. 3 are communicatively coupled not to awebsite, but to an application 310/322, e.g., the Outlook electronicmail program in the Apple OS X Operating System, respectively, installedon client devices 304/306. By way of example, the application in clientdevices 304/306 of FIG. 3 is a mail client 312/324, respectively, thatis communicatively coupled to a mail server (not shown to simplifyillustration). In this configuration, the mail server serves anelectronic mail on the mail client and the feedback plugins receivenotifications and monitor changes to the mail client displayed or activeon the client device.

FIG. 4 shows a feedback seeking process 400, according to one embodimentof the present teachings and that may be used to obtain, among otherthings, feedback on individual performance. Feedback seeking process maybegin with a step 402, which includes receiving information relating topotential mention of one or more individuals to gain insight intowhether identity of one or more of the individuals is present in anelectronic content. The electronic content may be a website, a web mailor an application window. In this step, the electronic content is or wasactive on a client device when such information is received preferablyat a feedback plugin (e.g., feedback plugin 214/314, 226/326 of FIGS. 2and 3, respectively). Moreover, such information does not necessarilyconvey knowledge about one or more of the individuals. Rather, itconveys information that may refer to one or more individuals or thatmay identify one or more individuals.

Next, a step 404 includes identifying one or more relevant individuals.If information relating to identity of one or more of the individuals ispresent in such information obtained from receiving step 402, and if oneor more of the individuals are those that the user is qualified toprovide feedback for, then one or more of such individuals areidentified as one or more relevant individuals.

Feedback seeking process 400 then proceeds to step 406. In this step,additional information about one or more of the relevant individualsidentified in identifying step 404 are collected to generate a userprofile for each of the relevant individuals.

After the conclusion of step 406, a step 408 includes displaying and/orcausing to display, a user interface and/or a panel. This interfaceand/or panel is constructed using the user profile and preferably seeksfeedback regarding at least some of the relevant individuals.

In one preferred embodiment of the present teachings, feedback seekingprocess 400, as described above, details the salient steps involvedbetween a feedback plugin (e.g., feedback plugin 214/314, 226/326 ofFIGS. 2 and 3, respectively) and a feedback server (e.g., feedbackserver 202 and 302 of FIGS. 2 and 3, respectively). Before carrying outreceiving step 402, process 400 preferably includes a step ofsubscribing to the electronic content (e.g., website, web mail orapplication) that is capable of being accessed on the client device. Inthis step, the feedback plugin may perform a variety of functionsdepending on the type of electronic content present or active on theclient device.

By way of example, if a website is the type of electronic content thatis of interest, then process 400 includes various steps, whichpreferably begin with utilizing, via programming, a built-in applicationprogram interface (“API”) of the web browser to provide the informationdescribed in receiving step 402 or a signal relating to suchinformation. According to the programming, such information is conveyedto the feedback plugin when a predefined website is active (e.g., loadedand/or displayed) on the web browser of the client device. Once theprogramming step is complete, the feedback plugin is prepared to receiveinformation from the web browser regarding the active status of thepredefined website.

Next, an accepting step may include accepting a notification, at thefeedback plugin, that the predefined website is active on the webbrowser. Such a notification may transform the feedback plugin from anon-activated state to an activated state of operation. In the activatedstate, the feedback plugin is prepared to monitor the predefined websitefor any changes.

Before receiving step 402 commences, the feedback plugin (in itsactivated state) preferably monitors changes in the predefined websiteto identify the information relating to potential mention of one or moreof individuals. Examples of monitoring activities performed by thefeedback plugin include—screen scraping the predefined website andmonitoring for receipt of a document object model (“DOM”) mutation eventnotification from the client device when structure of a DOM associatedwith the predefined website undergoes a change. Examples of screenscraping include—monitoring content of a predefined HTML page or asection of the predefined HTML page. In this monitoring function, thefeedback plugin preferably determines if there is a change in thecontent of the predefined HTML page or a section of the predefined HTMLpage. Regardless of whether the change is in the content of thepredefined HTML page or a section of the predefined HTML page, thefeedback plugin receives information that may relate to potentialmention of one or more individuals who are candidates for receivingperformance-based feedback.

The present teachings also recognize that although when a predefinedwebsite is active on the client device, the API of the web browser maybe programmed to voluntarily communicate the active status of apredefined website to the feedback plugin, but that the ability to socommunicate is not available for other types of electronic content. Inother words, in certain instances the client device may not be able toprovide an interface that informs on the status of the electroniccontent in the absence of a prompt, which requests information regardingthe status of the electronic content; specifically, whether theelectronic content is active on the client device. An Outlook programwindow hosted on the Apple OS X Operating System is one example ofelectronic content that does not voluntarily communicate its status, andtherefore the present teachings recognize that different measures arepreferably implemented.

To this end, if an application (e.g., electronic mail program likeOutlook launched in the Apple OS X Operating System) is the type thathosts electronic content that is of interest, then process 400 includesvarious steps, which preferably begin with programming that utilizes anAccessibility API of an operating system installed on the client deviceto provide a notification when a new or different application is active(e.g., loaded and/or displayed) on the client device. Next, an acceptingstep includes accepting the notification, at the feedback plugin, that anew or different application is active on the client device. Similar tothe case with the predefine website, such a notification of a new ordifferent application being active, transforms the feedback plugin froma non-activated state to an activated state of operation. Then, amonitoring step includes monitoring, in an activated state of thefeedback plugin, the new or different application to identify theinformation relating to potential mention of one or more individuals.

By way of example, monitoring of the new or the different applicationincludes—determining, using the Accessibility API, when a user interactswith the new or the different application and/or when certain predefinedscripts are executed on the client device. User interactions, which arepreferably monitored by the feedback plugin, may include at least oneuser action chosen from group comprising mouse clicks, keyboard presses,screen touches and gestures. Examples of certain predefined scripts thatmay be executed on the client device include JavaScripts and/or DOMevents.

When a user interacts with the Outlook program, for example, the programwill execute undocumented script files, specifically script fileswritten in the language of “Apple Script.” Such script files informs onthe user interaction with the program (e.g., informing if the userclicked on an email or when reviewing a series of different emails, eachtime the user clicks on a different email). In other words, in theabove-described determining step, the Accessibility API allows afeedback plugin to “listen” for signals that are generated by theapplication, i.e., the Outlook program, and that results from the user'sinteraction with the application or when certain predefined scripts areexecuted on the client device. Stated another way, the user interactionswith the application or execution of certain predefined scripts on theclient device “prompt” the feedback plugin to send to the application arequest for status of the electronic content. In this manner, thefeedback plugin may “listen” to the application that is running on theclient device.

As explained above, the present teachings recognize that, in certaininstances, an applications window, which provides information about somerelevant individuals, is the electronic content of interest. Asexplained in connection with identifying step 404 of FIG. 4, relevantindividuals refers to individuals that a user is qualified to providefeedback for. Examples of such application windows include browserwindow, chat window and calendar window.

Regardless of whether the electronic content is a web page or anapplication window that is active on a client device, the presentteachings offer a subscribing step, which is preferably implementedbefore receiving step 402 and allows a feedback plugin to “listen” toany specified electronic content that is active on the client device.Representative types of specified electronic content includes predefinedweb page, predefined web mail and predefined application window.

In accordance with preferred embodiments of the present teachings, thesubscribing step may begin with accepting (e.g., at a feedback plugin) anotification from a client device that a specified electronic content(e.g. predefined website or a predefined application) is active (e.g.,launched) on the client device. Such a notification transforms thefeedback plugin from a non-activated state to an activated state ofoperation. Next, the subscribing step includes monitoring, e.g., using afeedback plugin in an activated state, changes in content inside thespecified electronic content to identify when such content includesinformation relating to potential mention of one or more individuals. Inone preferred embodiment of the present teachings, the feedback pluginis not monitoring at all times, but only when it is in its activatedstate of operation. Moreover, when a feedback plugin is implemented andis operating in its activated state, it identifies content that issuspected to contain the identity one or more individuals. As explainedbelow, however, that after the feedback server process the informationreceived from the feedback plugin, it is clear whether or not theinformation received at the feedback plugin (from the electronic contentactive on the client device) contains the identity of one or moreindividuals.

Referring back to the monitoring step and in the context of subscribingto a predefined applications window, monitoring of an applicationincludes detecting, using the feedback plugin, one or more monitoringsignals generated from the relevant applications to infer contextualinformation that may be informative regarding identity of one or moreindividuals. The present teachings recognize many ways to monitorapplications. Some examples presented above include monitoring userinteraction with the application and monitoring executing of unofficialscript files (e.g., files in “Apple Script” language). Other examples ofmonitoring one or more applications include monitoring a signal producedby such application(s) and the signal is not supported or not documentedby the electronic content provider or application vendor. In onescenario of this example, a software vendor may not support the signalthat the software produces. In another scenario of this example, anapplication vendor (e.g., Microsoft) and/or electronic content provider(e.g., Google providing Gmail or Yahoo providing Yahoo mail or aninternal company electronic mail system) may not support the signalproduced by the application (which may be an electronic mailapplication).

A yet another example of monitoring one or more applications includesmonitoring a signal generated by changes in the user interface of theclient device. In this example, the changes in the user interface of theclient device are independent of the user or user interactions. In onescenario of this example, an electronic mail is received at the mailclient and the monitoring function includes monitoring log files, whichtrack internal information, and that are typically useful for thesoftware vendor for, among other things, diagnostic purposes. In anotherscenario of this example, changes in the client device's user interfaceincludes new screen loading and/or content changes on the client device.Regardless of the manner in which the monitoring step and/or thesubscribing step are performed, upon the conclusion of these steps, thefeedback plugin is prepared to facilitate receiving step 402 of FIG. 4.

In one embodiment of the present teachings, receiving step 402 iscarried out using the feedback plugin (e.g., feedback plugin 214/314,226/326 of FIGS. 2 and 3, respectively) and feedback server (e.g.,feedback server 202 and 302 of FIGS. 2 and 3, respectively).Specifically, information relating to potential mention of one or moreindividuals is preferably sent from the feedback plugin and received bythe feedback server. As shown in the embodiments shown in FIGS. 2 and 3,the feedback plugin is communicatively coupled to a client deviceassociated with a user and the information regarding the potentialmention of one or more individuals present on the client device isreceived at the feedback plugin, and is in turn, conveyed to thefeedback server, which is communicatively coupled through a network tothe feedback plugin. The feedback server may include instructions for,among other things: (1) determining if that the information relating topotential mention of one or more individuals actually identifies anyindividuals as described in identifying step 404 of FIG. 4; (2)determining which, if any, of the identified one or more individuals arethose that the user is qualified to provide feedback for (to identifyone or more relevant individuals as described in identifying step 404);(3) collecting additional information about one or more of the relevantindividuals as identified in step 406; (4) generating a user profile foreach of the relevant individuals as identified in step 406; and (5)transmitting to the feedback plugin the user profile of one or morerelevant individuals so that the feedback plugin may appropriatelyprocess that information.

The feedback plugin, using the user profiles of one or more relevantindividuals, displays and/or causes to display on or adjacent to theelectronic content on the client device a user interface and/or panelfor obtaining feedback on at least some of the relevant individuals.During this step of displaying and/or causing to display on the clientdevice, an electronic content provider provides the electronic contentand the feedback server and/of the feedback plugin provide the userinterface and/or the panel. In a preferred configuration of the presentarrangements, the feedback server is different from the electroniccontent provider.

In one embodiment of the present arrangements, the feedback plugin ispart of or communicatively coupled to a web browser as shown in FIG. 2.In this configuration, the web browser is installed on the client deviceand hosts the electronic content preferably in the form of a web page onthe client device. Moreover, a web server, which is different from thefeedback server (e.g., feedback server 202 of FIG. 2), provides the webpage.

In one alternate embodiment of the present arrangements, the feedbackplugin is part of or communicatively coupled to a web-based mail clientpage on the client device also shown in FIG. 2. In this configuration, aweb browser hosts the web-based mail client page on the client device.As a result, a web-based mail server provides the web-based mail clientpage and the web-based mail server is different from the feedbackserver. Representative examples of a web-based mail client includeGmail, Outlook.com, Yahoo mail and their providers are Google,Microsoft, Yahoo, respectively. In some instances, third parties, whocontract with these electronic content providers, may provide theweb-based mail client.

In another alternate embodiment of the present arrangements, thefeedback plugin is communicatively coupled to an application installedon the client device as shown in FIG. 3. In this configuration, theapplication may be communicatively coupled to an electronic contentprovider, which is different from the feedback server. By way ofexample, if an application-based mail client hosts electronic mail onthe client device, then the electronic content provider is anapplication-based server, which is different from the feedback server.Representative examples of an application-based mail client includeGmail and Outlook.

FIGS. 7A and 7B show a screenshot of an exemplar user interface and/orpanel that results from displaying and/or causing to display step 408 ofFIG. 4. In FIG. 7A, user interface 800 shows a feedback panel 804disposed adjacent to an electronic mail 802. In FIG. 7B, user interface800′ shows a collapsed feedback panel 804′ disposed adjacent toelectronic mail 802. In the collapsed configuration of the feedbackpanel as shown in FIG. 7B the user has more real estate available toview electronic mail 802.

In one embodiment of the present teachings, displaying and/or causing todisplay step 408 of FIG. 4 includes: (1) determining an appropriatelocation and/or size of the user interface (e.g., user interfaces 800 or800′ of FIGS. 7A and 7B) and/or the panel (e.g., feedback panel 804 or804′ of FIGS. 7A and 7B) for seeking input, such as seeking feedbackregarding individual performance, assigning tasks to one or morerelevant individuals, conveying a “to-do list” to one or more relevantindividuals, sharing an agenda with one or more relevant individuals andmanaging goals of the user and one or more individuals and/or team; and(2) positioning the user interface and/or the panel for gatheringfeedback next to the electronic content (e.g., electronic mail 802 ofFIGS. 7A and 7B).

The user interface (e.g., user interfaces 800 or 800′ of FIGS. 7A and7B) and/or the panel (e.g., feedback panel 804 or 804′ of FIGS. 7A and7B) are preferably constructed using a user profile for each of the oneor more relevant individuals. Representative information for each of theone or more relevant individuals presented in the panel includes fullname, employer, job title, supervisor's name, supervisor's electronicmail address and the user's relationship to the individual (e.g., peer,supervisor or direct report). In another embodiment of the presentteachings, based on the information received from the feedback server,the feedback plugin customizes the user interface and/or the panelpresented to the user.

FIG. 5 shows another feedback seeking process 500, according to analternate embodiment of the present teachings and that may be used toobtain, among other things, feedback on individual performance. Feedbackseeking process may begin with a step 502, which includes receiving anotification at a feedback plugin that a specified electronic content(e.g., a predefined website, a predefined web mail page or a predefinedapplication window) is active on a client device. Next, a step 504includes retrieving, in response to receiving step 502, at least aportion of the specified electronic content from the client device intothe feedback plugin.

Then, a step 506 is implemented and it includes analyzing at least theportion of the specified electronic content mentioned in step 504, toidentify information relating to potential mention of one or moreindividuals in the specified electronic content.

Process 500 then proceeds to step 508, which includes conveying, fromthe feedback plugin to a feedback server, the information relating topotential mention of one or more of the individuals to gain insight intowhether the information relating to potential mention of one or more ofthe individuals in the specified content is related to one or morerelevant individuals. As explained before, one or more relevantindividuals are those that the user is qualified to provide feedbackfor.

After the conclusion of step 508, step 510 includes accepting from thefeedback server the user profile for one or more of the relevantindividuals.

Finally, process 500 may end with step 512, which includes displayingand/or causing to display a user interface and/or a panel for obtainingfeedback on at least some of the relevant individuals. In this step, theuser interface and/or panel is disposed on or adjacent to the electroniccontent on the client device, and is constructed using the user profilementioned in accepting step 510.

In one preferred embodiment of the present teachings, feedback seekingprocess 500, as described above, details the salient steps involvedbetween one or more client devices (e.g., client device 104/106 of FIG.1 and 204/304, 206/306 of FIGS. 2 and 3, respectively) and a feedbackplugin (e.g., feedback plugin 214/314, 226/326 of FIGS. 2 and 3,respectively). Before carrying out receiving step 502, process 500preferably includes a step of subscribing to an electronic content(e.g., predefined website, predefined web mail or predefined applicationwindow) that is capable of being accessed on the client device. In thisstep, the feedback plugin may perform a variety of functions dependingon the type of electronic content present or active on the clientdevice. The subscribing step performed in connection with process 500 issubstantially similar to the one discussed in relation to process 400 ofFIG. 4. Moreover all variations and different embodiments described withrespect to process 400 of FIG. 4 equally apply to process 500 of FIG. 5.In other words, with respect to the web browser embodiments, theutilizing step (i.e., utilizing a built-in API of the web browser toprovide information relating to potential mention of one or moreindividuals), the accepting step (i.e., accepting the notification fromthe client device to transform the feedback plugin from a non-activatedstate to an activated state of operation) and the monitoring step (i.e.,monitoring changes in the web site) discussed in connection with process400 of FIG. 4 also apply to process 500 of FIG. 5. Similarly, withrespect to the application window embodiments, the utilizing step (i.e.,utilizing Accessibility API of the operating system to provideinformation relating to potential mention of one or more individuals),the accepting step and the monitoring step (both of which aresubstantially similar to those described in the web site embodiments)discussed in connection with process 400 of FIG. 4 also apply to process500 of FIG. 5. Different implementations of the monitoring stepdescribed in connection with process 400 of FIG. 4 also apply to process500 of FIG. 5.

In the context of an applications window, the above-mentioned monitoringstep includes detecting, using the feedback plugin, one or moremonitoring signals generated from the relevant applications to infercontextual information that may be informative regarding identity of oneor more individuals. The present teachings recognize many ways tomonitor applications. By way of example, monitoring one or moreapplications includes monitoring a signal produced by suchapplication(s) and the signal is not supported or not documented by theelectronic content provider or application vendor. In one scenario ofthis example, a software vendor may not support the signal that thesoftware produces. In another scenario of this example, an applicationvendor (e.g., Microsoft) and/or electronic content provider (e.g.,Google providing Gmail or Yahoo providing Yahoo mail or an internalcompany electronic mail system) may not support the signal produced bythe application (which may be an electronic mail application).

In certain aspects of the present teachings, receiving step 502 of FIG.5, is not initiated when a user highlights hypertext, text or a portionof a web page. In one implementation of the present teachings,displaying and/or causing to display step 512 does not present a userinterface and/or a panel to gather feedback regarding one or moreproducts, their features and attributes. Further, in anotherimplementation of the present teachings, displaying and/or causing todisplay step 512 does not present a user interface and/or a panel togather feedback regarding business entities and their quality ofoperation and service.

The present teachings recognize various ways of implementing conveyingstep 508 of FIG. 5. In accordance with one embodiment of the presentteachings, this step includes conveying the information (about thepotential mention relating to one or more of the individuals) through arequest from the feedback plugin to the feedback server to resolve theinformation relating to potential mention of one or more of theindividuals. In other words, the feedback server is requested todetermine whether the information conveyed identifies any individuals.The feedback plugin's request is chosen from a group comprising networkrequest, web request and feedback plugin request. A network request mayuse one or more types of networks for conveying the feedback plugin'srequest. A web request may use a specific communication protocol (e.g.,HTTP protocol) for conveying the feedback plugin's request. The feedbackplugin request may use certain instructions programmed into the feedbackplugin for conveying the request.

FIG. 6 shows another feedback seeking process 600, according to yetanother alternate embodiment of the present teachings and that may beused to obtain, among other things, feedback on individual performance.Feedback seeking process may begin with a step 602, which includesreceiving a signal that an electronic mail is active on a client device.The electronic mail identifies a sender and one or more recipients ofthe electronic mail. Furthermore, the signal is received when theelectronic mail is or was active on the client device, which isassociated with a user.

Next, a step 604 includes conveying information regarding the sender andone or more of the recipients to a feedback server.

After step 604 has concluded, then a step 606 is carried out. This stepincludes identifying, based on the information regarding the sender andone or more of the recipients mentioned in conveying step 604, one ormore relevant individuals that the user is qualified to provide feedbackfor. In this step, one or more of the relevant individuals include atleast one of the sender and/or one or more of the recipients.

Process 600 may conclude with step 608, which includes displaying and/orcausing to display, on the client device, a user interface or a panelfor seeking feedback from the user regarding individual performance ofthe relevant individuals.

Process 600 may include a subscribing step that is substantially similarto that described in connection with process 400 and 500. Moreover allvariations and different embodiments described with respect to process400 of FIG. 4 and process 500 of FIG. 5 may well be applied duringimplementation of process 600 of FIG. 6. In other words, with respect tothe web browser embodiments, the utilizing step (i.e., utilizing abuilt-in API of the web browser to provide information relating topotential mention of one or more individuals), the accepting step andthe monitoring step discussed in connection with process 400 of FIG. 4and process 500 of FIG. 5 may well apply to process 600 of FIG. 6.Similarly, with respect to the application window embodiments, theutilizing step (i.e., utilizing Accessibility API of the operatingsystem to provide information relating to potential mention of one ormore individuals), the accepting step and the monitoring step discussedin connection with process 400 of FIG. 4 and process 500 of FIG. 5 mayapply when implementing process 600 of FIG. 6. Different implementationsof the monitoring step described in connection with process 400 of FIG.4 and process 500 of FIG. 5 may also apply to process 600 of FIG. 6.

In one embodiment of the present teachings, the user is one of therecipients of the electronic mail. According to one aspect, receivingstep 602 of the present teachings includes accepting, from the client, arequest for information regarding the sender and/or one or more of therecipient associated with the electronic mail. As shown in FIG. 3, theclient device may have installed thereon a mail client and feedbackplugin, and in this configuration, receiving step 602 includes the mailclient conveys the signal to the feedback plugin, which iscommunicatively coupled to the feedback server. The feedback plugininteracts with the feedback server when the electronic mail is active onthe client device (e.g., an act by the user or by the mail client thatdisplays the electronic mail on the client device).

When a user interface and/or a panel is displayed, according toprocesses 400, 500, 600 of FIGS. 4, 5 and 6, respectively, or acombination thereof, then an additional transmitting step may beperformed. In this step, feedback of the user regarding at least one ofthe relevant individuals is transmitted to another user. In one aspectof the present teachings, another user is one of the relevant individualor is different from the each of the relevant individuals.

The present teachings also offer preferred feedback seeking processes,which represent a combination feedback seeking process 400 of FIG. 4 andfeedback seeking process 500 of FIG. 5. One implementation of suchpreferred methods begins with a receiving step that include receiving anotification at a feedback plugin that a specified electronic content isactive on a client device that is associated with a user. During thisreceiving step, the feedback plugin is communicatively coupled to theclient device.

Next, a retrieving step is performed. This step includes retrieving,using the feedback plugin and in response to the above-mentionedreceiving step, at least a portion of the specified electronic contentfrom the client device into the feedback plugin.

Then, an analyzing step is carried out by the feedback plugin.Specifically, at least the portion of the specified electronic contentis analyzed to identify information relating to potential mention of oneor more individuals in the specified electronic content. In one aspect,the analyzing step of the present teachings is carried out when thespecified electronic content is active on the client device.

In some instances, the portion of the specified electronic contentretrieved into the feedback plugin contains information that does notcontribute to determining the identity of any individual, then in theseinstances, the analyzing step may include filtering out such extraneousinformation to arrive at information relating to potential mention ofone or more individuals.

In certain embodiments of the present teachings, the analyzing step mayconsider the following types of information extraneous and therefore,not include such information in its analysis: (1) user interaction withcontent and/or a product; or (2) presence of one or more businessentities or an individual's name associated with an area. It isnoteworthy that at the end of the analyzing step, the informationrelating to potential mention of one or more individuals does notnecessarily include the identity of any individual.

After the analyzing step has concluded, the preferred feedback seekingprocess then proceeds to a conveying step, which includes conveying theinformation relating to potential mention of one or more of theindividuals from the feedback plugin to a feedback server to gaininsight into the information relating to potential mention of one ormore of the individuals in the specified content.

The feedback server, in the preferred embodiments of the presentteachings, advances an identifying step, which includes identifying oneor more relevant individuals based on the information relating topotential mention of one or more of the individuals (obtained from theanalyzing step).

The feedback server next performs a collecting step. This includescollecting additional information about one or more of the relevantindividuals to generate a user profile for each of one or more of therelevant individuals. As will be explained later that a user interfaceand/or a panel is presented on the client device and that the userinterface and/or the panel is constructed using the user profileinformation.

Referring back to the above-mentioned preferred feedback seekingprocess, upon conclusion of the collecting step, a transmitting step iscarried out. In this step, the feedback server transmits to the feedbackplugin, the user profile about at least some of the relevant individualsthat the user is qualified to provide feedback for. The user profileprovided by the feedback server, in the transmitting step, is preferablymore informative about one or more of the relevant individuals than theinformation relating to potential mention of one or more of theindividuals (obtained from the analyzing step).

The preferred feedback seeking process may come to an end with adisplaying and/or a causing to display step. In this step, the feedbackserver and/or the feedback plugin display and/or cause to display a userinterface and/or a panel for obtaining feedback on at least some of therelevant individuals. The user interface and/or the panel is displayedand/or caused to be displayed on or adjacent to the electronic contenton the client device. In this embodiment of the present teachings, theuser interface and/or the panel are constructed using the user profile.Furthermore, in the displaying and/or the causing to display step, theweb server provides the specified electronic content and the feedbackserver and/or the feedback plugin provide the user interface and/or thepanel. In this configuration, the feedback server is different from theweb server.

The above-described feedback seeking processes (e.g., feedback seekingprocesses 400, 500, 600 and combinations thereof) are not limited toonly seeking feedback, but also extends to assigning tasks to relevantindividuals, conveying a “to-do list” to relevant individuals, sharingan agenda between the user and one or more relevant individuals andmanaging goals of the user and/or one or more of the relevantindividuals and/or teams. As a result, feedback seeking process bethought of as a task assigning process, a list conveying process, anagenda sharing process or a goal management process that does notnecessarily provide feedback. Furthermore, regardless of the processimplemented to display and/or cause to display the user interface and/orthe panel, the user inputs at least one of feedback, task list, “to-dolist,” agenda and goals in the user interface and/or panel and suchinput is received by the client device. In one preferred embodiment ofthe present teachings, the user inputs is ultimately stored at thefeedback server so that it may be later retrieved for further review bythe user or others.

The present arrangements also provide a system for interacting with aclient device. The system includes: (1) a feedback server containinginstructions for seeking feedback and/or information relating to workdeliverables to the client device; (2) a network serving as acommunication interface between the feedback server and a feedbackplugin; and (3) the feedback plugin is located on the client device andreceives information and/or signals from a mail client and/or a websiteto process information about one or more individuals.

In this system, the information relating to work deliverables mayinclude information to facilitate assigning tasks to individuals,information conveying a “to-do list,” information to facilitate sharingan agenda between two or more users and information to facilitatemanaging goals of teams and/or individuals. The mail client receiveselectronic mail from an electronic mail server and/or an electronic mailweb server.

FIGS. 8 and 9 shows a table, according to one embodiment of the presentinvention and that presents exemplar code to implement certain salientfunctions of the feedback plugin and the feedback server, respectively.

FIG. 8 describes different functions 900, according to one embodiment ofthe present teachings, of a feedback plugin. After the feedback pluginis installed on a client device, a step 901 includes subscribing, usinga feedback plugin, to be notified when an Internet web browser,installed on the client device, visits one or more predefined web pages.In other words, in this subscribing step, the feedback plugin and theweb browser are configured such that when the web browser visits one ormore predefined webpages, the web browser notifies the feedback pluginof the web browser's visit.

By way of example, if a Chrome browser extension plugins (“Chrome”) areused in conjunction with a feedback plugin, then subscribing under step901 includes parsing a manifested file. This step is, preferably,carried out when the manifested file is installed on the feedbackplugin. The term “manifested file,” refers to a specific file thatspecifies the feedback plugin's capabilities and usage. The phrase“parsing a manifested file,” as used herein, conveys that a web browseris processing (e.g., opening and reading) the manifested file. In theChrome example, the manifested file of a particular plugin informscertain websites, which are deemed relevant, the level of interest theyhave garnered from the public at large. In response to receipt of thesubscription from the feedback plug in, the web browser grants thesubscription, e.g., Chrome informs the feedback plugin that the feedbackplugin will be informed when the Chrome visits the predefined websitesor websites specified in the manifested file of the feedback plugin.

In step 902 of FIG. 9, when the web browser visits the predefinedwebsites or websites specified in the manifested file of the feedbackplugin, then the feedback plugin is placed from an inactive state to anactive state. In the embodiment of the present teachings when Chrome isimplemented as a web browser, the feedback plugin transforms from aninactive state to an active state when the client device visits thepredefined websites that are present or listed in the list of manifestedfiles of the feedback plugin.

In another embodiment of the present teachings, step 902 includesmonitoring DOM changes to see if they match an attribute selector, e.g.,EMAIL_SELECTOR, and if they do, then such matching DOM mutation events(also known as “DOM changes”) transform the feedback plugin from aninactive state to an active state. FIG. 8 shows exemplar code inJavascript and/or jQuery that enables this function of EMAIL SELECTORthat transforms the feedback plugin from an inactive state to an activestate. The code that enables this function resides in thefeedback-plugin and may specify a certain pattern. By way of example,the code specifies a Cascading Style Sheets (“CSS”) selector. CSSselector describes how HTML elements are to be displayed on a computerscreen, printed on paper, or presented in other media. Further, the CSSselector specifies a pattern where a hierarchy of HTML elements exists.

In yet another embodiment of the present teachings, the feedback pluginis transformed from an inactive state to an active state by a predefinedor specific animation event. Several animation-related events areavailable through the DOM event system. DOM events are generated at thestart and end of each animation and at the end of each iteration of ananimation.

A step 903 of FIG. 8 includes monitoring DOM changes to determine ifthere is a place to display the feedback plugin's user interface. Thephrase “feedback plugin's user interface,” as used herein, refers to auser interface developed by the feedback plugin, using informationpresent at feedback server, and advanced to the client device. By way ofexample, in Gmail, the feedback plugin's user interface is displayed inthe Gmail sidebar. Generally, however, feedback plugin's user interfaceis displayed on and or adjacent to electronic content, e.g., web pagesor an email interface. In one aspect of this example, if a sidebarelement, e.g., a contact list or some other information, is presented onthe client device, then in step 903, the feedback plugin determines ifthere is enough space in the sidebar element to replace with its ownuser interface. The feedback plugin (in its active state) may listen ormonitor for the presence of a sidebar element on the client device andconfigures its user interface such that it replaces the sidebar element.

After the completion of step 903, FIG. 8 shows that a step 904 iscarried out. Step 904 includes displaying and/or causing to display,using the feedback plugin, a user interface and/or a panel for obtainingfeedback on at least some of the relevant individuals. Preferably, theuser interface and/or the panel is constructed using the user profilewhich may be stored on the feedback server or on a database associatedwith the feedback server. In one embodiment of the present teachings, anentire boundary that encompasses electronic content of interest, such asemail messages or a particular email message is visually presented, forexample, in or adjacent to the electronic content or email interface. Ifa sidebar element is present then, the entire boundary that encompasseselectronic content of interest may replace the previous contact of thesidebar element.

In another embodiment of step 904, when the feedback plugin detects thepresence of a new electronic content or new email message on the clientdevice, then feedback plugin proceeds to override the previous contentsof the sidebar element, i.e., the old user profiles of the previouslydeemed relevant individuals, is overridden in favor of the newinformation, e.g., recent user profiles, i.e., user profiles ofindividuals deemed relevant in light of recently uploaded email messageor electronic content.

In accordance with one embodiment of the present teachings, before step904 of FIG. 8 is carried out, the feedback plugin performs an analyzingstep as described in step 905 of FIG. 8. According to the analyzingstep, the feedback plugin analyzes potential mention of one or moreindividuals in active electronic content, e.g., active email, on theclient device.

In a subsequent step, step 906, the feedback plugin conveys a list ofpotential mentions to a web server, e.g., a feedback server, and basedupon a response from the web server, displays the results on the clientdevice. By way of example, the feedback plugin displays the resultsobtained from the web server as a webpage in an iframe. The iframeconveys or presents the user profiles of individuals deemed relevant inlight of recently uploaded email message or electronic content. In oneembodiment of the present teachings, in step 906, the feedback pluginmanipulates the sidebar in an email interface, e.g., Gmail interface orapplication, to include user profiles of individuals deemed relevant inlight of recently uploaded email message or electronic content. Thefeedback plugin may manipulate the rectangle that includes a web page ora frame, which includes all contents of email messages.

FIG. 9 shows different steps carried out by a feedback server. Step 1001of FIG. 9 involves registering an endpoint (i.e., a point of connectionfor the feedback server and external devices, such as a client devicethat has a feedback plugin installed thereon) in the feedback pluginthat is responsive to information conveyed from the feedback plugin. Theregistered endpoint is catalogued on both sides. When the feedbackplugin requests feedback server to identify relevant individuals frominformation relating to potential mention of individuals or requests formore information regarding mention of one or more relevant individualsfrom the feedback server, the feedback server receives that request formore information at the registered endpoint in the feedback server. Inthis scenario, the feedback server makes the endpoint available so thatit may receive the request for information. On the feedback plugin, theendpoint is also registered such that the feedback plugin has a locationto where the request for more information is sent.

Next, step 1002 of FIG. 9 includes accepting web requests from thefeedback plugin. In reference to the above-mentioned example, a requestfor identifying relevant individuals from information relating topotential mention of individuals or request for more informationregarding mention of one or more relevant individuals is sent to thefeedback server as a web request, and the feedback server, in return, isconfigured to accept the feedback plugin's request in the form of a webrequest.

Then, step 1003 of FIG. 9 includes parsing or breaking down, using thefeedback server, mentions of one or more potential names of individualsobtained from the feedback plugin. This parsing or breaking down step isused to prepare a URL of an iframe that is conveyed back to the feedbackplugin so that the iframe is ultimately presented on the client devicepreferably alongside the electronic content (e.g., email) of interest.By way of example, an email message that mentions one or more potentialnames of individuals, also presents information related to thoseindividuals alongside the email message.

Although illustrative embodiments of this invention have been shown anddescribed, other modifications, changes, and substitutions are intended.Accordingly, it is appropriate that the appended claims be construedbroadly, and in a manner consistent with the scope of the disclosure, asset forth in the following claims.

What is claimed is:
 1. A method of seeking feedback, said methodcomprising: subscribing, using a feedback plugin, to be notified when aweb browser visits one or more predefined web pages; receiving anotification at a feedback plugin that said web browser has visited oris visiting one or more said predefined web pages on a client device,which is associated with a user, wherein said feedback plugin iscommunicatively coupled to said client device; transforming saidfeedback plugin from a non-active state to an active state; retrieving,using said feedback plugin and in response to said receiving of saidnotification, at least a portion of one or more said predefined webpages from said client device into said feedback plugin; analyzing,using said feedback plugin, at least said portion of one or more saidpredefined web pages to identify information relating to potentialmention of one or more individuals in one or more said predefined webpages; conveying said information relating to potential mention of oneor more of said individuals from said feedback plugin to a feedbackserver to gain insight into whether said information relating topotential mention of one or more of said individuals in one or more ofsaid predefined web pages is related to one or more relevantindividuals, wherein one or more of said relevant individuals are thosethat said user is qualified to provide feedback for; accepting from saidfeedback server a user profile for one or more of said relevantindividuals; displaying and/or causing to display, using said feedbackserver and/or said feedback plugin and on or adjacent to one or more ofsaid predefined web pages on said client device; said user interfaceand/or a panel for obtaining feedback on at least some of said relevantindividuals, wherein said user interface and/or said panel isconstructed using said user profile, wherein in said displaying and/orsaid causing to display, said web server provides said one or more saidpredefined web pages and said feedback server and/or said feedbackplugin provides said user interface and/or said panel, and wherein saidfeedback server is different from said web server; and wherein saidreceiving said notification at said feedback plugin includes:monitoring, using said feedback plugin, for receipt of a document objectmodel (“DOM”) mutation event notification from said client device whenstructure of a DOM associated with the predefined website undergoes achange; and receiving, at said feedback plugin, said DOM mutation eventnotification from said client device.
 2. The method of seeking feedbackof claim 1, further comprising receiving, at said feedback plugin, agrant of subscription from said web browser, wherein said subscribingincludes parsing a manifested file on said feedback plugin, and saidmanifested file includes a list of one or more predefined web pages, andwherein said receiving includes receiving notification when said webbrowser visits one or more of said predefined web pages listed in saidmanifested file.
 3. The method of seeking feedback of claim 1, whereinsaid monitoring includes monitoring DOM mutation events to identify acondition when said DOM mutation event matches a predefined attributeselector, and wherein said transforming includes transforming saidfeedback plugin from said inactive state to an active state when saidDOM mutation event matches said predefined attribute selector.
 4. Themethod of seeking feedback of claim 3, wherein said predefined attributeselector is a cascading style selector.
 5. The method of seekingfeedback of claim 3, wherein said DOM mutation event is generated atbeginning, end or reiteration of an animation event.
 6. The method ofseeking feedback of claim 3, wherein said displaying and/or said causingto display includes determining, using said feedback plugin, whetherenough space is present, at said client device, to replace a sidebarelement in an email interface or place a user interface in or adjacentto one or more of said predefined web pages.
 7. The method of seekingfeedback of claim 1, wherein said displaying and/or said causing todisplay includes replacing a sidebar element in an email interface withan entire boundary that encompasses electronic content of interest, atleast some of which is obtained from said feedback server.
 8. The methodof seeking feedback of claim 1, wherein said displaying and/or saidcausing to display includes replacing a sidebar element in an emailinterface with one or more user profiles of individuals deemed relevantin light of recently uploaded email message or electronic content atsaid feedback plugin.
 9. The method of seeking feedback of claim 8,wherein said displaying and/or said causing to display includesdisplaying and/or causing to display said user interface as a webpage inan iframe, which includes said user profile.
 10. A method of seekingfeedback, said method comprising: subscribing, using a feedback plugin,to be notified when a web browser visits one or more predefined webpages; receiving a notification at a feedback plugin that said webbrowser has visited or is visiting one or more said predefined web pageson a client device, which is associated with a user, wherein saidfeedback plugin is communicatively coupled to said client device;transforming said feedback plugin from a non-active state to an activestate, retrieving, using said feedback plugin and in response to saidreceiving of said notification, at least a portion of one or more saidpredefined web pages from said client device into said feedback plugin;analyzing, using said feedback plugin, at least said portion of one ormore said predefined web pages to identify information relating topotential mention of one or more individuals in one or more saidpredefined web pages; conveying said information relating to potentialmention of one or more of said individuals from said feedback plugin toa feedback server to gain insight into whether said information relatingto potential mention of one or more of said individuals in one or moreof said predefined web pages is related to one or more relevantindividuals, wherein one or more of said relevant individuals are thosethat said user is qualified to provide feedback for; accepting from saidfeedback server a user profile for one or more of said relevantindividuals; displaying and/or causing to display, using said feedbackserver and/or said feedback plugin and on or adjacent to one or more ofsaid predefined web pages on said client device, said user interfaceand/or a panel for obtaining feedback on at least some of said relevantindividuals, wherein said user interface and/or said panel isconstructed using said user profile, wherein in said displaying and/orsaid causing to display, said web server provides said one or more saidpredefined web pages and said feedback server and/or said feedbackplugin provides said user interface and/or said panel, and wherein saidfeedback server is different from said web server; and wherein saiddisplaying and/or said causing to display includes manipulating asidebar element in an email interface to present a recent user profile,which is arrived by retrieving at least a portion of one or more ofrecent predefined web pages, wherein said recent predefined web pagesare retrieved by said feedback plugin later in time than said predefineweb pages, and wherein said recent predefined web pages include emailmessages or electronic content.
 11. The method of seeking feedback ofclaim 10, wherein said manipulating said sidebar element in said emailinterface includes manipulating a rectangle that includes a web page ora frame, which includes content of email messages.
 12. A method ofseeking feedback, said method comprising: registering an end point of afeedback plugin in a connection between said feedback plugin and afeedback server; receiving, from said feedback plugin through said endpoint and at said feedback server, information relating to potentialmention of one or more individuals to gain insight into whether identityof one or more of said individuals is present in an electronic content,wherein said information relating to potential mention of one or more ofsaid individuals does not necessarily convey knowledge about one or moreof said individuals, and wherein said electronic content is or wasactive on a client device, said feedback plugin is communicativelycoupled to the client device associated with a user, and said feedbackserver is communicatively coupled to said feedback plugin through anetwork; identifying one or more relevant individuals, if informationrelating to identity of one or more of said individuals is present insaid information relating to potential mention of one or more of saidindividuals obtained from said receiving and if one or more of saidindividuals are those that said feedback server determines said user tobe qualified to provide feedback for; collecting, using said feedbackserver, additional information about one or more of said relevantindividuals to generate a user profile for each of one or more of saidrelevant individuals; transmitting, from said feedback server to saidfeedback plugin, said user profile, wherein said user profile providedby said feedback server is more informative about one or more of saidrelevant individuals than said information relating to potential mentionof one or more of said individuals that was received at said feedbackserver; and displaying and/or causing to display, using said feedbackserver and/or said feedback plugin and on or adjacent to said electroniccontent on said client device, a user interface and/or a panel forobtaining feedback on at least some of said relevant individuals,wherein said user interface and/or said panel is constructed using saiduser profile, wherein during said displaying and/or said causing todisplay, an electronic content provider provides said specifiedelectronic content and said feedback server and/or said feedback pluginprovide said user interface and/or said panel, and wherein said feedbackserver is different from said electronic content provider.
 13. Themethod of seeking feedback of claim 12, wherein said informationrelating to potential mention of one or more of said individuals is inform of a web request and said feedback server is configured to acceptsaid web request from said feedback plugin.
 14. The method of seekingfeedback of claim 12, wherein said identifying one or more of saidrelevant includes parsing or breaking down, using said feedback server,potential mentions of one or more of said individuals to prepare a URLof an iframe, and wherein said transmitting includes transmitting saidURL of said iframe from said feedback server to said feedback plugin,and wherein said displaying and/or said causing to display, using saidfeedback server and/or said feedback plugin, includes displaying and/orcausing to display said iframe on or adjacent to said electronic contenton said client device.